n個のScrapbox import用jsonを1個のファイルにマージする
code:bash
find *.json -print0 | xargs -0 cat | jq '.pages[]' | jq -s '{ "pages": . }' > import.json
findですべて取得し、1つにして出力する
上限はなくなった(少しずつimportしてくれる)
Scrapboxにインポートするための2つのjsonがある
code:本A.json
{ "pages": [
{
"title": "本A P001",
},
{
"title": "本A P002",
},
...(略)
]}
code:本B.json
{ "pages": [
{
"title": "本B P001",
},
{
"title": "本B P002",
},
...(略)
]}
2ファイルなら2回インポートをすればよいが、nファイルになると1度で済ませたい
どう1つにするか
できそう
という事は以下の手順で処理すればnつのjsonを1つのjsonにマージできそう
jsonファイルを取得
jsonをパースして特定keyの中身を取り出す
並べて配列にする
元のjsonオブジェクトに戻す
上記の手順を本A.jsonと本B.jsonの仕様で考えると
本A.jsonと本B.jsonをそれぞれ取得
jsonをパースしてpageskeyの配列を取り出す
並べて配列にする
pageskeyに戻す
ファイルを取得する際に困った
最初はlsとかで取得しようと思っていたが、スペースが含まれるファイルが混じる時に困る
これ何度かハマった記憶がある…
findで一覧取得してxargsで1ファイルずつ処理するんだっけ…?